web-transport
WebTransport is a new browser API powered by QUIC intended as a replacement for WebSockets. Most importantly, QUIC supports multiple independent data streams.
This crate provides a generic WebTransport implementation depending on the platform:
- Native: web-transport-quinn
- WASM: web-transport-wasm
Why no trait?
I did make a generic trait. However, async traits are quite problematic and difficult to use.
It shortly became impossible when trying to add WASM support because of !Send
.
So this crate switches the implementation based on the underlying platform.
As an added benefit, you no longer need to litter your code with
generics. I got pretty fed up constantly writing moq_transport<S: web_transport_generic::Session>
.